package com.learning.dubbo.service.validation.api;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

public interface ValidationService {

    /**
     * 缺省可按服务接口区分验证场景，如： @NotNull(groups = ValidationService.class)
     * 与方法同名接口，首字母大写，用于区分验证场景，如： @NotNull(groups = ValidationService.Save.class)，可选
     */
    @interface Save {}
    void save(ValidationParameter parameter);


    @interface Update {}
    void update(ValidationParameter parameter);

    /**
     * 验证参数不为空
     * @param parameter
     */
    void insert(@NotNull ValidationParameter parameter);

    /**
     * 直接对基本类型参数验证
     * @param id
     */
    void delete(@Min(1) int id);
}